package Controller;

import java.util.ArrayList;
import java.util.List;

import Beans.AreaBean;
import Beans.IngredienteBean;
import Beans.ItemRecetaBean;
import DAO.HibernateAreaDAO;
import DAO.HibernateItemRecetaDAO;
import DTO.IngredienteDTO;
import DTO.ItemRecetaDTO;
import Model.Ingrediente;
import Model.ItemReceta;

public class AdministradorItemReceta {
	private static AdministradorItemReceta instancia;
	private AdministradorItemReceta(){
		
	}
	public static AdministradorItemReceta getInstancia(){
		if(instancia==null)
			instancia=new AdministradorItemReceta();
		return instancia;
	}
	public List<ItemRecetaBean> fromModelTOBean(List<ItemReceta> itemsReceta) {
		List<ItemRecetaBean> itemsRecetaBean =new ArrayList<ItemRecetaBean>();
		for (ItemReceta itemReceta : itemsReceta) {
			ItemRecetaBean itemBean=fromModelTOBean(itemReceta);
			itemsRecetaBean.add(itemBean);
		}
		return itemsRecetaBean;
	}
	public ItemRecetaBean fromModelTOBean(ItemReceta itemReceta) {
		ItemRecetaBean itemBean=null;
		if(itemReceta!=null){
		itemBean=new ItemRecetaBean();
		itemBean.setId(itemReceta.getId());
		itemBean.setCantidad(itemReceta.getCantidad());
		itemBean.setIngrediente((IngredienteBean) AdministradorProducto.getInstancia().fromModelTOBean(itemReceta.getIngrediente()));
		}
		return itemBean;
	}
	public List<ItemReceta> fromDTOTOModel(List<ItemRecetaDTO> itemsRecetaDTO) {
		List<ItemReceta> itemsReceta =new ArrayList<ItemReceta>();
		for (ItemRecetaDTO itemRecetaDTO : itemsRecetaDTO) {
			ItemReceta item=fromDTOTOModel(itemRecetaDTO);
			itemsReceta.add(item);
		}
		return itemsReceta;
	}
	public ItemReceta fromDTOTOModel(ItemRecetaDTO itemRecetaDTO) {
		ItemReceta item=null;
		if(itemRecetaDTO!=null){
		item=new ItemReceta();
		item.setId(itemRecetaDTO.getId());
		item.setCantidad(itemRecetaDTO.getCantidad());
		item.setIngrediente((Ingrediente) AdministradorProducto.getInstancia().fromDTOTOModel(itemRecetaDTO.getIngrediente()));
		}
		return item;
	}
	
	public List<ItemRecetaDTO> fromModelTODTO(List<ItemReceta> itemsReceta) {
		List<ItemRecetaDTO> itemsRecetaDTO =new ArrayList<ItemRecetaDTO>();
		for (ItemReceta itemReceta : itemsReceta) {
			ItemRecetaDTO itemDTO=fromModelTODTO(itemReceta);
			itemsRecetaDTO.add(itemDTO);
		}
		return itemsRecetaDTO;
	}
	public ItemRecetaDTO fromModelTODTO(ItemReceta itemReceta) {
		ItemRecetaDTO itemDTO=null;
		if(itemReceta!=null){
		itemDTO=new ItemRecetaDTO();
		itemDTO.setId(itemReceta.getId());
		itemDTO.setCantidad(itemReceta.getCantidad());
		itemDTO.setIngrediente((IngredienteDTO) AdministradorProducto.getInstancia().fromModelTODTO(itemReceta.getIngrediente()));
		}
		return itemDTO;
	}
	
	public List<ItemReceta> fromBeanTOModel(List<ItemRecetaBean> itemsRecetaBean) {
		List<ItemReceta> itemsReceta =new ArrayList<ItemReceta>();
		for (ItemRecetaBean itemRecetaBean : itemsRecetaBean) {
			ItemReceta item=fromBeanTOModel(itemRecetaBean);
			itemsReceta.add(item);
		}
		return itemsReceta;
	}
	public ItemReceta fromBeanTOModel(ItemRecetaBean itemRecetaBean) {
		ItemReceta item=null;
		if(itemRecetaBean!=null){
		item=new ItemReceta();
		item.setId(itemRecetaBean.getId());
		item.setCantidad(itemRecetaBean.getCantidad());
		item.setIngrediente((Ingrediente) AdministradorProducto.getInstancia().fromBeanTOModel(itemRecetaBean.getIngrediente()));
		}
		return item;
	}
	public ItemReceta buscarItemReceta(ItemReceta receta) {
		ItemRecetaBean ab=fromModelTOBean(receta);
		ab=HibernateItemRecetaDAO.getInstancia().buscarItemReceta(ab);
		return fromBeanTOModel(ab);
	}
}
